home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / wild / developer / examples / src / kube / initscene.c < prev    next >
C/C++ Source or Header  |  1999-01-25  |  22KB  |  678 lines

  1.  
  2. #include <exec/types.h>
  3. #include <inline/wild.h>
  4. #include <inline/exec.h>
  5. #include <inline/dos.h>
  6. #include <wild/wild.h>
  7. #include <wild/tdcore.h>
  8. #include <exec/execbase.h>
  9. #include <gcc/compiler.h>
  10. #include <utility/hooks.h>
  11. #include <gcc/debug.h>
  12. #include <debugoutput.h>
  13. #include <wild/objects.h>
  14.  
  15. extern struct WildBase     *WildBase;
  16. extern struct WildScene    *KubeScene;
  17. extern struct WildApp    *KubeApp;
  18. extern    ULONG        *debugfh;
  19.  
  20. struct    WildSector    *KubeSector;
  21.  
  22. #define DOSBase        WildBase->wi_DOSBase
  23.  
  24. static const char    tiger_chu[]=    {"images/tiger.chu24\0"};
  25. static const char    eagle_chu[]=    {"images/eagle.chu24\0"};
  26. static const char    py_chu[]=    {"images/py.chu24\0"};
  27. static const char    wild_chu[]=    {"images/wild.chu24\0"};
  28. static const char    sunset_chu[]=    {"images/sunset.chu24\0"};
  29. static const char    canyon_chu[]=    {"images/canyon.chu24\0"};
  30. static const char    kube_pal[]=    {"images/kube.pal\0"};
  31.  
  32. void    KubeTextureHook(LIB_FCT(struct WildTexture,*tex,a2),LIB_FCT(ULONG,action,a1),LIB_FCT(struct Hook,*hook,a0))
  33. {
  34.  switch (action)
  35.   {
  36.    case TEXACTION_Load:
  37.     {
  38.      tex->tex_Raw=LoadFile(NULL,hook->h_Data,0);
  39.      break;
  40.     }
  41.    case TEXACTION_Free:
  42.     {
  43.      FreeVecPooled(tex->tex_Raw);
  44.      break;
  45.     }
  46.   }
  47. }
  48.  
  49. void InitScene()
  50. {
  51.  static ULONG    normal[]={    0,0,0,
  52.                  1<<16,0,0,
  53.                  0,1<<16,0,
  54.                  0,0,1<<16};    // normal ref in O(0,0,0)
  55.  static ULONG    camera[]={    0,0,-200,
  56.                  1<<16,0,0,
  57.                  0,1<<16,0,
  58.                  0,0,1<<16};    // normal ref in O(0,0,-200)
  59.  static ULONG    pointA[]={     100, 100,-100};
  60.  static ULONG    pointB[]={     100, 100, 100};
  61.  static ULONG    pointC[]={    -100, 100, 100};
  62.  static ULONG    pointD[]={    -100, 100,-100};
  63.  static ULONG    pointE[]={     100,-100,-100};
  64.  static ULONG    pointF[]={     100,-100, 100};
  65.  static ULONG    pointG[]={    -100,-100, 100};
  66.  static ULONG    pointH[]={    -100,-100,-100};
  67.  static ULONG    pointLight[]={     200,-150, -10};
  68.  
  69.  static ULONG    hook[]={    0,0,&KubeTextureHook,0,0};
  70.  
  71.  static ULONG     *world,*arena,*alien,*pa,*pb,*pc,*pd,*pe,*pf,*pg,*ph,
  72.          *ea,*eb,*ec,*ed,*ee,*ef,*eg,*eh,*ei,*ej,*ek,*el,*em,*en,*eo,*ep,*eq,*er,
  73.          *fa,*fb,*fc,*fd,*fe,*ff,*fg,*fh,*fi,*fj,*fk,*fl,
  74.          *tiger,*eagle,*py,*wild,*sunset,*canyon,
  75.         *kube_palette,*light,*lightsector,*lightpoint;
  76.  
  77.  kube_palette=LoadFile(NULL,kube_pal,0);
  78. DebugOut("Loaded kube palette.\n\0");
  79.  if (KubeScene=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Scene,
  80.                      WIBU_BuildObject,TRUE,
  81.                      WIBU_WildApp,KubeApp,
  82.                      ATTR_SCENE_PALETTE,kube_palette,
  83.                      ATTR_SCENE_CAMERA,&camera,0,0))
  84.   {
  85. DebugOut("Made scene.\n\0");
  86.    if (world=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_World,
  87.                        WIBU_BuildObject,TRUE,
  88.                        WIBU_WildApp,KubeApp,
  89.                        FRIEND_WORLD_SCENE,KubeScene,0,0))
  90.     {
  91. DebugOut("Made world.\n\0");
  92.      if (arena=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Arena,
  93.                          WIBU_BuildObject,TRUE,
  94.                          WIBU_WildApp,KubeApp,
  95.                          FRIEND_ARENA_WORLD,world,
  96.                          ATTR_ENTITY_REF,&normal,0,0))
  97.       {
  98. DebugOut("Made arena.\n\0");
  99.        if (alien=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Alien,
  100.                            WIBU_BuildObject,TRUE,
  101.                            WIBU_WildApp,KubeApp,
  102.                            FRIEND_ALIEN_ARENA,arena,
  103.                            ATTR_ENTITY_REF,&normal,0,0))
  104.         {
  105. DebugOut("Made alien.\n\0");
  106.          if (KubeSector=BuildWildObjectTags(WIBU_ObjectType,OBJECT_Sector,
  107.                          WIBU_BuildObject,TRUE,
  108.                          WIBU_WildApp,KubeApp,
  109.                          FRIEND_SECTOR_ALIEN,alien,
  110.                          FRIEND_ENTITY_PARENT,alien,
  111.                          ATTR_ENTITY_REF,&normal,0,0))
  112.           {
  113. DebugOut("Made KubeSector.\n\0");
  114.            pa=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  115.                            WIBU_BuildObject,TRUE,
  116.                            WIBU_WildApp,KubeApp,
  117.                            FRIEND_POINT_SECTOR,KubeSector,
  118.                            ATTR_POINT_COLOR,0xff0000,
  119.                            ATTR_POINT_VEK,&pointA,0,0);    // No more checking!! Boring !!
  120.  
  121.            pb=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  122.                            WIBU_BuildObject,TRUE,
  123.                            WIBU_WildApp,KubeApp,
  124.                            FRIEND_POINT_SECTOR,KubeSector,
  125.                            ATTR_POINT_COLOR,0xff0000,
  126.                            ATTR_POINT_VEK,&pointB,0,0);    // No more checking!! Boring !!
  127.                        
  128.            pc=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  129.                            WIBU_BuildObject,TRUE,
  130.                            WIBU_WildApp,KubeApp,
  131.                            FRIEND_POINT_SECTOR,KubeSector,
  132.                            ATTR_POINT_COLOR,0xff0000,
  133.                            ATTR_POINT_VEK,&pointC,0,0);    // No more checking!! Boring !!
  134.  
  135.            pd=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  136.                            WIBU_BuildObject,TRUE,
  137.                            WIBU_WildApp,KubeApp,
  138.                            FRIEND_POINT_SECTOR,KubeSector,
  139.                            ATTR_POINT_COLOR,0xff0000,
  140.                            ATTR_POINT_VEK,&pointD,0,0);    // No more checking!! Boring !!
  141.  
  142.            pe=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  143.                            WIBU_BuildObject,TRUE,
  144.                            WIBU_WildApp,KubeApp,
  145.                            FRIEND_POINT_SECTOR,KubeSector,
  146.                            ATTR_POINT_COLOR,0xff0000,
  147.                            ATTR_POINT_VEK,&pointE,0,0);    // No more checking!! Boring !!
  148.  
  149.            pf=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  150.                            WIBU_BuildObject,TRUE,
  151.                            WIBU_WildApp,KubeApp,
  152.                            FRIEND_POINT_SECTOR,KubeSector,
  153.                            ATTR_POINT_COLOR,0xff0000,
  154.                            ATTR_POINT_VEK,&pointF,0,0);    // No more checking!! Boring !!
  155.  
  156.            pg=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  157.                            WIBU_BuildObject,TRUE,
  158.                            WIBU_WildApp,KubeApp,
  159.                            FRIEND_POINT_SECTOR,KubeSector,
  160.                            ATTR_POINT_COLOR,0xff0000,
  161.                            ATTR_POINT_VEK,&pointG,0,0);    // No more checking!! Boring !!
  162.  
  163.            ph=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Point,
  164.                            WIBU_BuildObject,TRUE,
  165.                            WIBU_WildApp,KubeApp,
  166.                            FRIEND_POINT_SECTOR,KubeSector,
  167.                            ATTR_POINT_COLOR,0xff0000,
  168.                            ATTR_POINT_VEK,&pointH,0,0);
  169.  
  170. DebugOut("Made points. :)\n\0");
  171.  
  172.            lightsector=BuildWildObjectTags(WIBU_ObjectType,OBJECT_Sector,
  173.                          WIBU_BuildObject,TRUE,
  174.                          WIBU_WildApp,KubeApp,
  175.                          FRIEND_SECTOR_ALIEN,arena,
  176.                          FRIEND_ENTITY_PARENT,arena,
  177.                          WIBU_Ref,&normal,0,0);
  178.                          
  179.            lightpoint=BuildWildObjectTags(WIBU_ObjectType,OBJECT_Point,
  180.                            WIBU_BuildObject,TRUE,
  181.                            WIBU_WildApp,KubeApp,
  182.                            FRIEND_POINT_SECTOR,lightsector,
  183.                            ATTR_POINT_VEK,&pointLight,0,0);
  184.  
  185.        light=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Light,
  186.                        WIBU_BuildObject,TRUE,
  187.                        WIBU_WildApp,KubeApp,
  188.                        FRIEND_LIGHT_ARENA,arena,
  189.                        ATTR_LIGHT_COLOR,0xffffff,
  190.                        ATTR_LIGHT_INTENSITY,203,
  191.                        FRIEND_LIGHT_POINT,lightpoint,0,0);
  192.  
  193. DebugOut("Made light and his own sector.\n\0");
  194.  
  195.  
  196.        ea=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  197.                        WIBU_BuildObject,TRUE,
  198.                        WIBU_WildApp,KubeApp,
  199.                        FRIEND_EDGE_SECTOR,KubeSector,
  200.                        FRIEND_EDGE_POINTA,pa,
  201.                        FRIEND_EDGE_POINTB,pd,0,0);
  202.                        
  203.        eb=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  204.                        WIBU_BuildObject,TRUE,
  205.                        WIBU_WildApp,KubeApp,
  206.                        FRIEND_EDGE_SECTOR,KubeSector,
  207.                        FRIEND_EDGE_POINTA,pa,
  208.                        FRIEND_EDGE_POINTB,pb,0,0);
  209.  
  210.        ec=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  211.                        WIBU_BuildObject,TRUE,
  212.                        WIBU_WildApp,KubeApp,
  213.                        FRIEND_EDGE_SECTOR,KubeSector,
  214.                        FRIEND_EDGE_POINTA,pb,
  215.                        FRIEND_EDGE_POINTB,pc,0,0);
  216.  
  217.        ed=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  218.                        WIBU_BuildObject,TRUE,
  219.                        WIBU_WildApp,KubeApp,
  220.                        FRIEND_EDGE_SECTOR,KubeSector,
  221.                        FRIEND_EDGE_POINTA,pc,
  222.                        FRIEND_EDGE_POINTB,pd,0,0);
  223.  
  224.        ee=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  225.                        WIBU_BuildObject,TRUE,
  226.                        WIBU_WildApp,KubeApp,
  227.                        FRIEND_EDGE_SECTOR,KubeSector,
  228.                        FRIEND_EDGE_POINTA,pe,
  229.                        FRIEND_EDGE_POINTB,ph,0,0);
  230.  
  231.        ef=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  232.                        WIBU_BuildObject,TRUE,
  233.                        WIBU_WildApp,KubeApp,
  234.                        FRIEND_EDGE_SECTOR,KubeSector,
  235.                        FRIEND_EDGE_POINTA,pe,
  236.                        FRIEND_EDGE_POINTB,pf,0,0);
  237.  
  238.        eg=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  239.                        WIBU_BuildObject,TRUE,
  240.                        WIBU_WildApp,KubeApp,
  241.                        FRIEND_EDGE_SECTOR,KubeSector,
  242.                        FRIEND_EDGE_POINTA,pf,
  243.                        FRIEND_EDGE_POINTB,pg,0,0);
  244.  
  245.        eh=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  246.                        WIBU_BuildObject,TRUE,
  247.                        WIBU_WildApp,KubeApp,
  248.                        FRIEND_EDGE_SECTOR,KubeSector,
  249.                        FRIEND_EDGE_POINTA,pg,
  250.                        FRIEND_EDGE_POINTB,ph,0,0);
  251.  
  252.        ei=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  253.                        WIBU_BuildObject,TRUE,
  254.                        WIBU_WildApp,KubeApp,
  255.                        FRIEND_EDGE_SECTOR,KubeSector,
  256.                        FRIEND_EDGE_POINTA,pa,
  257.                        FRIEND_EDGE_POINTB,pe,0,0);
  258.  
  259.        ej=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  260.                        WIBU_BuildObject,TRUE,
  261.                        WIBU_WildApp,KubeApp,
  262.                        FRIEND_EDGE_SECTOR,KubeSector,
  263.                        FRIEND_EDGE_POINTA,pf,
  264.                        FRIEND_EDGE_POINTB,pb,0,0);
  265.  
  266.        ek=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  267.                        WIBU_BuildObject,TRUE,
  268.                        WIBU_WildApp,KubeApp,
  269.                        FRIEND_EDGE_SECTOR,KubeSector,
  270.                        FRIEND_EDGE_POINTA,pg,
  271.                        FRIEND_EDGE_POINTB,pc,0,0);
  272.  
  273.        el=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  274.                        WIBU_BuildObject,TRUE,
  275.                        WIBU_WildApp,KubeApp,
  276.                        FRIEND_EDGE_SECTOR,KubeSector,
  277.                        FRIEND_EDGE_POINTA,ph,
  278.                        FRIEND_EDGE_POINTB,pd,0,0);
  279.  
  280.        em=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  281.                        WIBU_BuildObject,TRUE,
  282.                        WIBU_WildApp,KubeApp,
  283.                        FRIEND_EDGE_SECTOR,KubeSector,
  284.                        FRIEND_EDGE_POINTA,pe,
  285.                        FRIEND_EDGE_POINTB,pg,0,0);
  286.  
  287.        en=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  288.                        WIBU_BuildObject,TRUE,
  289.                        WIBU_WildApp,KubeApp,
  290.                        FRIEND_EDGE_SECTOR,KubeSector,
  291.                        FRIEND_EDGE_POINTA,pe,
  292.                        FRIEND_EDGE_POINTB,pb,0,0);
  293.  
  294.        eo=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  295.                        WIBU_BuildObject,TRUE,
  296.                        WIBU_WildApp,KubeApp,
  297.                        FRIEND_EDGE_SECTOR,KubeSector,
  298.                        FRIEND_EDGE_POINTA,pb,
  299.                        FRIEND_EDGE_POINTB,pd,0,0);
  300.  
  301.        ep=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  302.                        WIBU_BuildObject,TRUE,
  303.                        WIBU_WildApp,KubeApp,
  304.                        FRIEND_EDGE_SECTOR,KubeSector,
  305.                        FRIEND_EDGE_POINTA,pd,
  306.                        FRIEND_EDGE_POINTB,ph,0,0);
  307.  
  308.        eq=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  309.                        WIBU_BuildObject,TRUE,
  310.                        WIBU_WildApp,KubeApp,
  311.                        FRIEND_EDGE_SECTOR,KubeSector,
  312.                        FRIEND_EDGE_POINTA,pf,
  313.                        FRIEND_EDGE_POINTB,pc,0,0);
  314.  
  315.        er=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Edge,
  316.                        WIBU_BuildObject,TRUE,
  317.                        WIBU_WildApp,KubeApp,
  318.                        FRIEND_EDGE_SECTOR,KubeSector,
  319.                        FRIEND_EDGE_POINTA,pe,
  320.                        FRIEND_EDGE_POINTB,pd,0,0);
  321. DebugOut("Made edges.\n\0");
  322.  
  323.        hook[4]=&eagle_chu;
  324.        eagle=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Texture,
  325.                        WIBU_BuildObject,TRUE,
  326.                        WIBU_WildApp,KubeApp,
  327.                     ATTR_TEXTURE_HOOK,hook,        //check
  328.                     FRIEND_TEXTURE_WORLD,world,
  329.                     ATTR_TEXTURE_WIDTH,256,
  330.                     ATTR_TEXTURE_HEIGHT,256,0,0);
  331.                     
  332.        hook[4]=&py_chu;
  333.        py=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Texture,
  334.                        WIBU_BuildObject,TRUE,
  335.                        WIBU_WildApp,KubeApp,
  336.                     ATTR_TEXTURE_HOOK,hook,        //check
  337.                     FRIEND_TEXTURE_WORLD,world,
  338.                     ATTR_TEXTURE_WIDTH,256,
  339.                     ATTR_TEXTURE_HEIGHT,256,0,0);
  340.  
  341.        hook[4]=&wild_chu;
  342.        wild=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Texture,
  343.                        WIBU_BuildObject,TRUE,
  344.                        WIBU_WildApp,KubeApp,
  345.                     ATTR_TEXTURE_HOOK,hook,        //check
  346.                     FRIEND_TEXTURE_WORLD,world,
  347.                     ATTR_TEXTURE_WIDTH,256,
  348.                     ATTR_TEXTURE_HEIGHT,256,0,0);
  349.  
  350.        hook[4]=&sunset_chu;
  351.        sunset=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Texture,
  352.                        WIBU_BuildObject,TRUE,
  353.                        WIBU_WildApp,KubeApp,
  354.                     ATTR_TEXTURE_HOOK,hook,        //check
  355.                     FRIEND_TEXTURE_WORLD,world,
  356.                     ATTR_TEXTURE_WIDTH,256,
  357.                     ATTR_TEXTURE_HEIGHT,256,0,0);
  358.  
  359.        hook[4]=&canyon_chu;
  360.        canyon=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Texture,
  361.                        WIBU_BuildObject,TRUE,
  362.                        WIBU_WildApp,KubeApp,
  363.                     ATTR_TEXTURE_HOOK,hook,        //check
  364.                     FRIEND_TEXTURE_WORLD,world,
  365.                     ATTR_TEXTURE_WIDTH,256,
  366.                     ATTR_TEXTURE_HEIGHT,256,0,0);
  367.                     
  368.        hook[4]=&tiger_chu;
  369.        tiger=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Texture,
  370.                        WIBU_BuildObject,TRUE,
  371.                        WIBU_WildApp,KubeApp,
  372.                     ATTR_TEXTURE_HOOK,hook,        //check
  373.                     FRIEND_TEXTURE_WORLD,world,
  374.                     ATTR_TEXTURE_WIDTH,256,
  375.                     ATTR_TEXTURE_HEIGHT,256,0,0);
  376. DebugOut("Loaded texture and palettes.\n\0");
  377.        
  378.        fa=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  379.                        WIBU_BuildObject,TRUE,
  380.                        WIBU_WildApp,KubeApp,
  381.                        FRIEND_FACE_SECTOR,KubeSector,
  382.                        FRIEND_FACE_POINTA,pe,
  383.                        FRIEND_FACE_POINTB,pa,
  384.                        FRIEND_FACE_POINTC,pd,
  385.                        FRIEND_FACE_EDGEA,ei,
  386.                        FRIEND_FACE_EDGEB,er,
  387.                        FRIEND_FACE_EDGEC,ea,
  388.                        FRIEND_FACE_TEXTURE,tiger,
  389.                        ATTR_FACE_TXA,255,
  390.                        ATTR_FACE_TYA,0,
  391.                        ATTR_FACE_TXB,255,
  392.                        ATTR_FACE_TYB,255,
  393.                        ATTR_FACE_TXC,0,
  394.                        ATTR_FACE_TYC,255,
  395.                        ATTR_FACE_FLAGS,0,0,0);
  396.  
  397.        fb=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  398.                        WIBU_BuildObject,TRUE,
  399.                        WIBU_WildApp,KubeApp,
  400.                        FRIEND_FACE_SECTOR,KubeSector,
  401.                        FRIEND_FACE_POINTA,ph,
  402.                        FRIEND_FACE_POINTB,pe,
  403.                        FRIEND_FACE_POINTC,pd,
  404.                        FRIEND_FACE_EDGEA,el,
  405.                        FRIEND_FACE_EDGEB,ee,
  406.                        FRIEND_FACE_EDGEC,er,
  407.                        FRIEND_FACE_TEXTURE,tiger,
  408.                        ATTR_FACE_TXA,0,
  409.                        ATTR_FACE_TYA,0,
  410.                        ATTR_FACE_TXB,255,
  411.                        ATTR_FACE_TYB,0,
  412.                        ATTR_FACE_TXC,0,
  413.                        ATTR_FACE_TYC,255,
  414.                        ATTR_FACE_FLAGS,0,0,0);
  415.  
  416.        fc=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  417.                        WIBU_BuildObject,TRUE,
  418.                        WIBU_WildApp,KubeApp,
  419.                        FRIEND_FACE_SECTOR,KubeSector,
  420.                        FRIEND_FACE_POINTA,pf,
  421.                        FRIEND_FACE_POINTB,pc,
  422.                        FRIEND_FACE_POINTC,pb,
  423.                        FRIEND_FACE_EDGEA,ej,
  424.                        FRIEND_FACE_EDGEB,ec,
  425.                        FRIEND_FACE_EDGEC,eq,
  426.                        FRIEND_FACE_TEXTURE,eagle,
  427.                        ATTR_FACE_TXA,0,
  428.                        ATTR_FACE_TYA,0,
  429.                        ATTR_FACE_TXB,255,
  430.                        ATTR_FACE_TYB,255,
  431.                        ATTR_FACE_TXC,0,
  432.                        ATTR_FACE_TYC,255,
  433.                        ATTR_FACE_FLAGS,0,0,0);
  434.  
  435.        fd=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  436.                        WIBU_BuildObject,TRUE,
  437.                        WIBU_WildApp,KubeApp,
  438.                        FRIEND_FACE_SECTOR,KubeSector,
  439.                        FRIEND_FACE_POINTA,pg,
  440.                        FRIEND_FACE_POINTB,pc,
  441.                        FRIEND_FACE_POINTC,pf,
  442.                        FRIEND_FACE_EDGEA,ek,
  443.                        FRIEND_FACE_EDGEB,eg,
  444.                        FRIEND_FACE_EDGEC,eq,
  445.                        FRIEND_FACE_TEXTURE,eagle,
  446.                        ATTR_FACE_TXA,255,
  447.                        ATTR_FACE_TYA,0,
  448.                        ATTR_FACE_TXB,255,
  449.                        ATTR_FACE_TYB,255,
  450.                        ATTR_FACE_TXC,0,
  451.                        ATTR_FACE_TYC,0,
  452.                        ATTR_FACE_FLAGS,0,0,0);
  453.  
  454.        fe=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  455.                        WIBU_BuildObject,TRUE,
  456.                        WIBU_WildApp,KubeApp,
  457.                        FRIEND_FACE_SECTOR,KubeSector,
  458.                        FRIEND_FACE_POINTA,pe,
  459.                        FRIEND_FACE_POINTB,ph,
  460.                        FRIEND_FACE_POINTC,pg,
  461.                        FRIEND_FACE_EDGEA,eh,
  462.                        FRIEND_FACE_EDGEB,ee,
  463.                        FRIEND_FACE_EDGEC,em,
  464.                        FRIEND_FACE_TEXTURE,py,
  465.                        ATTR_FACE_TXA,255,
  466.                        ATTR_FACE_TYA,255,
  467.                        ATTR_FACE_TXB,0,
  468.                        ATTR_FACE_TYB,255,
  469.                        ATTR_FACE_TXC,0,
  470.                        ATTR_FACE_TYC,0,
  471.                        ATTR_FACE_FLAGS,0,0,0);
  472.  
  473.        ff=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  474.                        WIBU_BuildObject,TRUE,
  475.                        WIBU_WildApp,KubeApp,
  476.                        FRIEND_FACE_SECTOR,KubeSector,
  477.                        FRIEND_FACE_POINTA,pe,
  478.                        FRIEND_FACE_POINTB,pg,
  479.                        FRIEND_FACE_POINTC,pf,
  480.                        FRIEND_FACE_EDGEA,eg,
  481.                        FRIEND_FACE_EDGEB,ef,
  482.                        FRIEND_FACE_EDGEC,em,
  483.                        FRIEND_FACE_TEXTURE,py,
  484.                        ATTR_FACE_TXA,255,
  485.                        ATTR_FACE_TYA,255,
  486.                        ATTR_FACE_TXB,0,
  487.                        ATTR_FACE_TYB,0,
  488.                        ATTR_FACE_TXC,255,
  489.                        ATTR_FACE_TYC,0,
  490.                        ATTR_FACE_FLAGS,0,0,0);
  491.  
  492.        fg=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  493.                        WIBU_BuildObject,TRUE,
  494.                        WIBU_WildApp,KubeApp,
  495.                        FRIEND_FACE_SECTOR,KubeSector,
  496.                        FRIEND_FACE_POINTA,pb,
  497.                        FRIEND_FACE_POINTB,pd,
  498.                        FRIEND_FACE_POINTC,pa,
  499.                        FRIEND_FACE_EDGEA,ea,
  500.                        FRIEND_FACE_EDGEB,eb,
  501.                        FRIEND_FACE_EDGEC,eo,
  502.                        FRIEND_FACE_TEXTURE,wild,
  503.                        ATTR_FACE_TXA,0,
  504.                        ATTR_FACE_TYA,0,
  505.                        ATTR_FACE_TXB,255,
  506.                        ATTR_FACE_TYB,255,
  507.                        ATTR_FACE_TXC,255,
  508.                        ATTR_FACE_TYC,0,
  509.                        ATTR_FACE_FLAGS,0,0,0);
  510.  
  511.        fh=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  512.                        WIBU_BuildObject,TRUE,
  513.                        WIBU_WildApp,KubeApp,
  514.                        FRIEND_FACE_SECTOR,KubeSector,
  515.                        FRIEND_FACE_POINTA,pd,
  516.                        FRIEND_FACE_POINTB,pb,
  517.                        FRIEND_FACE_POINTC,pc,
  518.                        FRIEND_FACE_EDGEA,eo,
  519.                        FRIEND_FACE_EDGEB,ec,
  520.                        FRIEND_FACE_EDGEC,ed,
  521.                        FRIEND_FACE_TEXTURE,wild,
  522.                        ATTR_FACE_TXA,0,
  523.                        ATTR_FACE_TYA,0,
  524.                        ATTR_FACE_TXB,255,
  525.                        ATTR_FACE_TYB,255,
  526.                        ATTR_FACE_TXC,0,
  527.                        ATTR_FACE_TYC,255,
  528.                        ATTR_FACE_FLAGS,0,0,0);
  529.  
  530.        fi=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  531.                        WIBU_BuildObject,TRUE,
  532.                        WIBU_WildApp,KubeApp,
  533.                        FRIEND_FACE_SECTOR,KubeSector,
  534.                        FRIEND_FACE_POINTA,pe,
  535.                        FRIEND_FACE_POINTB,pf,
  536.                        FRIEND_FACE_POINTC,pb,
  537.                        FRIEND_FACE_EDGEA,ej,
  538.                        FRIEND_FACE_EDGEB,ef,
  539.                        FRIEND_FACE_EDGEC,en,
  540.                        FRIEND_FACE_TEXTURE,canyon,
  541.                        ATTR_FACE_TXA,0,
  542.                        ATTR_FACE_TYA,0,
  543.                        ATTR_FACE_TXB,255,
  544.                        ATTR_FACE_TYB,0,
  545.                        ATTR_FACE_TXC,255,
  546.                        ATTR_FACE_TYC,255,
  547.                        ATTR_FACE_FLAGS,0,0,0);
  548.  
  549.        fj=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  550.                        WIBU_BuildObject,TRUE,
  551.                        WIBU_WildApp,KubeApp,
  552.                        FRIEND_FACE_SECTOR,KubeSector,
  553.                        FRIEND_FACE_POINTA,pe,
  554.                        FRIEND_FACE_POINTB,pb,
  555.                        FRIEND_FACE_POINTC,pa,
  556.                        FRIEND_FACE_EDGEA,ei,
  557.                        FRIEND_FACE_EDGEB,eb,
  558.                        FRIEND_FACE_EDGEC,en,
  559.                        FRIEND_FACE_TEXTURE,canyon,
  560.                        ATTR_FACE_TXA,0,
  561.                        ATTR_FACE_TYA,0,
  562.                        ATTR_FACE_TXB,255,
  563.                        ATTR_FACE_TYB,255,
  564.                        ATTR_FACE_TXC,0,
  565.                        ATTR_FACE_TYC,255,
  566.                        ATTR_FACE_FLAGS,0,0,0);
  567.  
  568.        fk=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  569.                        WIBU_BuildObject,TRUE,
  570.                        WIBU_WildApp,KubeApp,
  571.                        FRIEND_FACE_SECTOR,KubeSector,
  572.                        FRIEND_FACE_POINTA,ph,
  573.                        FRIEND_FACE_POINTB,pd,
  574.                        FRIEND_FACE_POINTC,pg,
  575.                        FRIEND_FACE_EDGEA,ep,
  576.                        FRIEND_FACE_EDGEB,eh,
  577.                        FRIEND_FACE_EDGEC,el,
  578.                        FRIEND_FACE_TEXTURE,sunset,
  579.                        ATTR_FACE_TXA,255,
  580.                        ATTR_FACE_TYA,0,
  581.                        ATTR_FACE_TXB,255,
  582.                        ATTR_FACE_TYB,255,
  583.                        ATTR_FACE_TXC,0,
  584.                        ATTR_FACE_TYC,0,
  585.                        ATTR_FACE_FLAGS,0,0,0);
  586.  
  587.        fl=BuildWildObjectTags(    WIBU_ObjectType,OBJECT_Face,
  588.                        WIBU_BuildObject,TRUE,
  589.                        WIBU_WildApp,KubeApp,
  590.                        FRIEND_FACE_SECTOR,KubeSector,
  591.                        FRIEND_FACE_POINTA,pd,
  592.                        FRIEND_FACE_POINTB,pc,
  593.                        FRIEND_FACE_POINTC,pg,
  594.                        FRIEND_FACE_EDGEA,ed,
  595.                        FRIEND_FACE_EDGEB,ek,
  596.                        FRIEND_FACE_EDGEC,ep,
  597.                        FRIEND_FACE_TEXTURE,sunset,
  598.                        ATTR_FACE_TXA,255,
  599.                        ATTR_FACE_TYA,255,
  600.                        ATTR_FACE_TXB,0,
  601.                        ATTR_FACE_TYB,255,
  602.                        ATTR_FACE_TXC,0,
  603.                        ATTR_FACE_TYC,0,
  604.                        ATTR_FACE_FLAGS,0,0,0);
  605. DebugOut("Made faces.\n\0");
  606.        
  607.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  608.                        WIBU_ModifyObject,fa,
  609.                        FRIEND_FACE_PLUS,fb,
  610.                        FRIEND_FACE_MINUS,fc,0,0);
  611.  
  612.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  613.                        WIBU_ModifyObject,fb,
  614.                        FRIEND_FACE_PLUS,0,
  615.                        FRIEND_FACE_MINUS,0,0,0);
  616.  
  617.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  618.                        WIBU_ModifyObject,fc,
  619.                        FRIEND_FACE_PLUS,fd,
  620.                        FRIEND_FACE_MINUS,fe,0,0);
  621.  
  622.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  623.                        WIBU_ModifyObject,fd,
  624.                        FRIEND_FACE_PLUS,0,
  625.                        FRIEND_FACE_MINUS,0,0,0);
  626.  
  627.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  628.                        WIBU_ModifyObject,fe,
  629.                        FRIEND_FACE_PLUS,ff,
  630.                        FRIEND_FACE_MINUS,fg,0,0);
  631.  
  632.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  633.                        WIBU_ModifyObject,ff,
  634.                        FRIEND_FACE_PLUS,0,
  635.                        FRIEND_FACE_MINUS,0,0,0);
  636.  
  637.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  638.                        WIBU_ModifyObject,fg,
  639.                        FRIEND_FACE_PLUS,fh,
  640.                        FRIEND_FACE_MINUS,fi,0,0);
  641.  
  642.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  643.                        WIBU_ModifyObject,fh,
  644.                        FRIEND_FACE_PLUS,0,
  645.                        FRIEND_FACE_MINUS,0,0,0);
  646.  
  647.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  648.                        WIBU_ModifyObject,fi,
  649.                        FRIEND_FACE_PLUS,fj,
  650.                        FRIEND_FACE_MINUS,fk,0,0);
  651.  
  652.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  653.                        WIBU_ModifyObject,fj,
  654.                        FRIEND_FACE_PLUS,0,
  655.                        FRIEND_FACE_MINUS,0,0,0);
  656.  
  657.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  658.                        WIBU_ModifyObject,fk,
  659.                        FRIEND_FACE_PLUS,fl,
  660.                        FRIEND_FACE_MINUS,0,0,0);
  661.  
  662.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Face,
  663.                        WIBU_ModifyObject,fl,
  664.                        FRIEND_FACE_PLUS,0,
  665.                        FRIEND_FACE_MINUS,0,0,0);
  666.  
  667.        BuildWildObjectTags(        WIBU_ObjectType,OBJECT_Sector,
  668.                        WIBU_ModifyObject,KubeSector,
  669.                        FRIEND_SHELL_ROOT,fa,0,0);
  670. DebugOut("Made BSP-Tree.\n\0");
  671.                        
  672.           }//Sector
  673.         }//Alien
  674.       }//Arena                       
  675.     }//World
  676.   }//Scene
  677. }
  678.